package com.googlecode.maratische.google.testBrowser;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.swing.text.html.HTML;
import javax.swing.text.html.HTML.Tag;

public class ErrorWrongHtml {

	
	public static void main(String[] args) {
		String html = "<span style=\"font-size: 15\"><span style=\"color:gray\">from: SQL.Ru Форум: Java</span><span style=\"color:gray\">&nbsp;&nbsp;&nbsp;&nbsp;by: timergaliev <nospam@sql.ru></span><br/><br/>у меня лист бокс в котором данные появляются по мере продвижения мышки вниз, как можно подобное действие привязать к движению scroll, т.е. если юзер скрол опустил вниз почти, то там уже автоматически подгружаются данные, проблема не в подгрузке <>данные, а в скроле</span>";
		System.out.println(html);
		html = removeWrongHtmlTags(html);
		System.out.println(html);
	}

	public static String removeWrongHtmlTags(String html) {
		Pattern pattern = Pattern.compile("\\<.*?>");
		Matcher matcher = pattern.matcher(html);
		while (matcher.find()) {
			String tagString = matcher.group();
			String tagName = tagString.substring(1,tagString.length()-1);
			if (tagName.length()>0) {
				tagName = (tagName.substring(0,1).equals("/")) ? tagName.substring(1) : tagName;
				tagName = (tagName.indexOf(" ")>0) ? tagName.substring(0, tagName.indexOf(" ")) : tagName;
				tagName = (tagName.substring(tagName.length()-1, tagName.length()).equals("/")) ? tagName.substring(0,tagName.length()-1) : tagName;
			}
			Tag tag = HTML.getTag(tagName.toLowerCase());
			if (tag == null) {
				html = html.replaceAll(tagString, "");
			}
		}
		return html;
	}
}
